import crypto from 'node:crypto'

// websocket中固定的字符串
const magic  = `258EAFA5-E914-47DA-95CA-C5AB0DC85B11`


// Sec-WebSocket-Key 模拟客户端发送给服务端携带的 key
const s1 = 'w4v7O6xFTi36lq3RNcgctw=='


const hash = crypto.createHash('sha1')


hash.update(s1 + magic)
// 计算摘要，并转换为16进制

// 3b2e0d440435de385f38d0bb6cff1d4ca6f83d35
// console.log(hash.digest('hex'));

// Oy4NRAQ13jhfONC7bP8dTKb4PTU=  转成 base64  --- 计算完成以后， 服务端需要返回  Sec-WebSocket-Accept
console.log(hash.digest('base64'));

// 注意： 计算摘要 digest 只能调用一次，不能调用多次，否则报错。